#ifndef _INCL_AP_LocalisationWrapper
#define _INCL_AP_LocalisationWrapper

#include "AP_def.h"


#include "AP_AnalyseScan.h"
#include "AP_Estimer.h"
#include "AP_Estimateur.h"

/*
 * Contenant pour toute la localisation
 */
class AP_LocalisationWrapper {
public:
	AP_LocalisationWrapper();
	GPose3D pose_m;
	GPoint3D v_m;
	// variables à conserver
	AP_AnalyseScan analysescan;
	AP_ReconRepere reconrepere;
	AP_Estimer estimer;
	AP_Estimateur estimateur;
	float yaw_offset;

	// estimation;
	/*
	 * loc: tente de faire une estimation et renvoie vrai en cas de succès
	 * ajouter les coordonnées des repères avant
	 */
	void lireHYawPitchRoll(float h, float yaw, float pitch, float roll); // recopie les valeurs dans cette classe
	bool loc(
			const TypeScan _scan,
			int nbpointsnominal,
			float seuil,
			float pitch,
			float roll,
			float yaw,
			float pose_z,
			float diametre,
			float rcontig,
			float rdetect);

	inline float getX() {
		return pose_m.x();
	}
	inline float getY() {
		return pose_m.y();
	}
	inline float getVx() {
		return v_m.x;
	}
	inline float getVy() {
		return v_m.y;
	}
	inline float getXe() {
		return estimateur.pose_e.x();
	}
	inline float getYe() {
		return estimateur.pose_e.y();
	}
	inline float getVxe() {
		return estimateur.v_e.x;
	}
	inline float getVye() {
		return estimateur.v_e.y;
	}

};




#endif
